class Solution:
    def max_strength(self, nums: list[int]) -> int:


        """
给你一个下标从 0 开始的整数数组 nums ，它表示一个班级中所有学生在一次考试中的成绩。老师想选出一部分同学组成一个 非空 小组，且这个小组的 实力值 最大，如果这个小组里的学生下标为 i0, i1, i2, ... , ik ，那么这个小组的实力值定义为 nums[i0] * nums[i1] * nums[i2] * ... * nums[ik​] 。

请你返回老师创建的小组能得到的最大实力值为多少。
#将数组所有数相乘，如果结果为负数，那么去掉绝对值最小的负数项

        """

        #先将整个数组相乘，顺便记录最绝对值最小的负数，如果最终值为负数就除以绝对值最小的负数
        answer = 1
        min = -9
        is_all = 1#是否全部小于或等于0
        have_zero = 0
        for i in nums:
            if i == 0:
                have_zero =1
                continue

            answer = i * answer

            if min<i <0 :
                min = i
                is_all = 1
            if i>0:
                is_all  = 0*is_all
        if is_all == 0 and have_zero ==1 :
            return 0
        if answer < 0 :
            return int(answer / min)
        else:
            return int(answer)

if __name__ == "__main__":
    test = Solution()
    print(test.max_strength([8,8,-6,-4,-6,-4,-6,-5,0,-9,-6,-3]))


